# !python3
# 爬去pdf文档

'''
常见的xml解析器是html.parser,另一个外部xml外部解析器 lxml，还有个html5lib
soup = BeautifulSoup("<a>", "html.parser")
# 只有起始标签的会自动补全，只有结束标签的会自动忽略
# 结果为：</a><a></a>
soup = BeautifulSoup("<a>", "lxml")
#结果为：</a><a></a>
soup = BeautifulSoup("<a>", "html5lib")
# html5lib则出现一般的标签都会自动补全
# 结果为：</a><a><p></p></a>
'''
from  urllib.request import urlopen
import urllib3
from bs4 import BeautifulSoup
from urllib.error import URLError
from urllib.error import HTTPError

'''
soup对象类型 tag /NavigableString/BeautifulSoup/Comment，其实用的最多的就tag一个
Tag : HTML文件中标签及标签之间的内容；
    soup.tag.name     #得到标签名称本身
    soup.tag.attrs    #得到标签的所有属性的字典
    soup.tag.img['src'] #直接获取某一个属性的值
    soup.tag.title='newTtitle'
    del soup.tag.title  #可进行读取/修改/删除操作
    soup.tag.string   标签内部的内容由.string 方法得到
    soup.tag.head.contents #返回一个子节点的列表元素
    for child in soup.body.children: #遍历输出一个字节点的的元素
        print (child)
    for child in soup.body.desendants: #遍历输出每层节点的元素
        print(child)
'''

try:

'''
    html=urlopen('http://fanyi.dict.cn')
    #bs=BeautifulSoup(html.read(),'html.parser') #文本形式和解析器
    bs=BeautifulSoup(html,'html.parser')  #文件对象形式和解析器
    print (bs.body.h1.a)  #获得标签
   # print(bs.body.h1.a['title'],bs.body.h1.img['src']) #获得标签内其它属性的内容
  
    #print (title)
'''
 html=urlopen('https://www.xicidaili.com/nn')
 bs=BeautifulSoup(html,'lxml') #addr+parse_solution
 
except HTTPError as e:
    print(e)
except URLError as e:
    print('Server not could not be found')
else:
    print('It worked')
